草庐IT

php sql同步等待

全部标签

c# - 如果一个线程正在等待 console.readline 线程是否被挂起?

如果线程正在等待控制台。readline是线程挂起。如果不是,它是什么状态? 最佳答案 线程没有挂起。它在方法调用时被阻止。 关于c#-如果一个线程正在等待console.readline线程是否被挂起?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2744578/

c# - 将任何给定的函数转换为可等待的任务

以下代码的目标是将任何给定函数转换为可等待函数。这个想法是在从数据库中获取数据时使用它,从而使代码可以灵活地使用同步获取函数(我当前ORM的强加),或者使用与异步完全相同的函数。我知道代码背后的概念可能有很多问题。到目前为止,我只是试图摆脱编译器错误,以便我可以运行代码并检查行为。但是我当然愿意事先讨论这个概念,如果它背后的整个想法是错误的,那么我会更有效地利用我的时间寻找另一个解决方案。asyncstaticvoidMain(){//Thefollowinglinegivesacompilererror://Error1Thebestoverloadedmethodmatchfor'

c# - 如何序列化异步/等待?

假设我有这个简单的片段:asyncvoidbutton_Click(objectsender,RoutedEventArgse){awaitTask.Factory.StartNew(()=>{Console.WriteLine("start");Thread.Sleep(5000);Console.WriteLine("end");});}显然,每次我按下该按钮时,都会启动一个新任务,即使之前的任务仍在运行。我如何将任何新任务推迟到所有以前的任务完成之前?更多细节:在上面的示例中,每个新任务都与之前的任务相同。然而,在原始上下文中,任务的顺序很重要:参数可能会改变(我可以使用Date

c# - Lucene.Net 写/读同步

我可以在打开索引(使用IndexReader)时将新文档写入(使用IndexWriter)吗?还是必须在写作之前关闭阅读?当索引打开用于写入(使用IndexWriter)时,我可以在索引中读取/搜索文档(使用IndexReader)吗?还是我必须在阅读之前关闭写作?Lucene.Net线程是否安全?还是必须自己写? 最佳答案 您可以随时打开任意数量的阅读器/搜索器,但只能打开一个写入器。这是由目录特定的锁强制执行的,通常涉及名为“write.lock”的文件。读者打开快照,作者向索引添加更多数据。在您的作者提交(IndexWrite

c# - Selenium Webdriver 等待元素点击?

我一直在寻找解决方案,但无济于事。我有一个正在单击的按钮,有时需要很长时间才能返回数据,并且驱动程序正在超时并且我猜只是杀死了应用程序。我正在尝试使用WebDriverWait类来完成此操作,但Click()方法在我使用它的方式中不可用。WebDriverWaitwait=newWebDriverWait(browser,newTimeSpan(0,5,0));boolclicked=wait.Until((elem)=>{elem.Click();//Doesn'tWorkreturntrue;});ImplicitlyWait()方法仅用于等待元素加载,但在Click()上超时,因

c# - 没有 "threads"的异步和等待?我可以自定义引擎盖下发生的事情吗?

我有一个关于如何自定义新async的问题/await关键字和TaskC#4.5中的类是。首先了解我的问题的一些背景知识:我正在开发具有以下设计的框架:一个线程有一个“当前待办事项”列表(通常大约有100到200个项目),这些列表存储为自己的数据结构并作为列表保存。它有一个Update()枚举列表并查看某些“事物”是否需要执行并执行的函数。基本上它就像一个大线程调度器。为了简化事情,让我们假设“要做的事情”是返回bool值true的函数。当它们“完成”时(不应称为下一次更新)和false下次更新时调度程序应该再次调用它们。所有“事物”不能并发运行,也必须在一个线程中运行(因为线程静态变量

c# - 我怎样才能等待最短时间?

我有一个异步C#方法,我在其中获取HTTP资源,并且在无限循环中进行。但是我不想太快地使用资源。我当前的代码是:HttpClienthttp=newHttpClient();while(true){//Long-polltheAPIvarresponse=awaithttp.GetAsync(buildUri());Console.WriteLine("Resp:"+response.ToString());Console.WriteLine("CONTENT:");Console.WriteLine(awaitresponse.Content.ReadAsStringAsync())

c# - 将 Socket.ReceiveAsync 替换为 NetworkStream.ReadAsync(可等待)

我有一个应用程序可以同时建立几百个TCP连接,并从它们接收源源不断的数据流。privatevoidstartReceive(){SocketAsyncEventArgse=newSocketAsyncEventArgs();e.Completed+=receiveCompleted;e.SetBuffer(newbyte[1024],0,1024);if(!Socket.ReceiveAsync(e)){receiveCompleted(this,e);}}voidreceiveCompleted(objectsender,SocketAsyncEventArgse){ProcessD

没有等待或返回的 C# 异步任务方法

我有一个在两个地方实现的接口(interface)I,例如:interfaceI{TaskDoSomething();}该接口(interface)具有异步任务DoSomething方法API,然后在类A中实现,例如:classA:I{....}classB:I{....}在类A中,DoSomething的实现如下,没问题:publicasyncTaskDoSomething(){if(...){awaitDoIt();}}但是,在类B中,DoSomething()的实现不应执行任何操作。所以,它的实现看起来像这样:publicasyncTaskDoSomething(){//noth

c# - 等待空任务永远旋转(等待新任务(()=>{}))

我试图理解这段代码:[TestFixture]publicclassExampleTest{[Test]publicvoidExample(){AwaitEmptyTask().Wait();}publicasyncTaskAwaitEmptyTask(){awaitnewTask(()=>{});}}方法Example永远不会结束并永远阻塞。为什么??修复(来自StubbingTaskreturningmethodinasyncunittest)是替换awaitnewTask(()=>{})与returnTask.FromResult(null);但同样,为什么这是必要的?我知道有很